package config

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"log"
	"time"
)

var db *gorm.DB

func init() {
	dsn := "root:root@tcp(192.168.179.22:3306)/beego?parseTime=true&loc=Asia%2FShanghai"
	conn, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		log.Fatal(err)
		log.Fatal("连接MySQL数据库失败")
	} else {
		log.Println("连接MySQL数据库成功")
	}
	sqlDB, err := conn.DB()
	sqlDB.SetMaxOpenConns(5)
	sqlDB.SetMaxIdleConns(2)
	sqlDB.SetConnMaxIdleTime(time.Minute)
	db = conn
	fmt.Println("===========================================")
}

// GetDB 开放给外部获得db连接
func GetDB() *gorm.DB {
	sqlDB, err := db.DB()
	if err != nil {
		fmt.Errorf("connect db server failed.")
	}
	if err := sqlDB.Ping(); err != nil {
		sqlDB.Close()
	}
	return db
}
